function AuthController(app) {

	this.view = new LoginView(this, '#mainPanel');

	this.signin = function(login, password) {
		app.showProgress('Вход ' + login + ':' + password + ' ...');
		$.ajax({
			url: 'service/user/signin.txt',
			type: 'POST',
			data: { login: login, password: password },
			async: false,
			cache: false,
			success: function (data, status, xhr) {
				var response = jQuery.parseJSON(data);
				if(response.user != null) {
					app.setUser(response.user);
					app.showNotification('Вы успешно вошли', 3000);
					console.log('signed in');
				} else {
					app.showError('Ошибка при входе', 'Произошла ошибка на сервере при попытке входа в систему.');
				}
			},
			error: function () {
				app.showError('Ошибка при входе', 'Произошла неизвестная ошибка при попытке входа в систему. Попробуйте еще раз.');
			}
		});
	};

	this.signout = function() {
		app.showProgress('Выход ...');
		$.ajax({
			url: 'service/user/signout.txt',
			async: false,
			cache: false,
			success: function (data, status, xhr) {
				console.log('signed out');
				app.setUser(null);
			},
			error: function () {
				app.showError('Ошибка при выходе', 'Произошла ошибка при попытке выхода из системы');
			}
		});
	};

	this.getCurrentUser = function() {
		$.ajax({
			url: 'service/user/read.txt',
			async: true,
			cache: false,
			success: function (data, status, xhr) {
				var response = jQuery.parseJSON(data);
				if(typeof response.user === "undefined" || response.user == null) {
					app.setUser(null);
				} else {
					app.setUser(response.user);
				}
			},
			error: function () {
				app.showError('Ошибка при проверке сессии', 'Произошла ошибка при проверке сессии пользователя');
			}
		});
	};
};